/*
 * 管理员模块接口
 * @Description: Jishupu-Admin
 * @Author: 技术铺<jishupu@qq.com>
 * @Date: 2021-12-10
 */

import request from '@/utils/request'

/**
 * 管理员列表
 * @param {Object} params
 * @param {Object} extendConfig
 * @returns  new Promise
 */
export function index(params, extendConfig) {
  return request.get('/v1/user', { params, ...extendConfig })
}

/**
 * 添加
 * @param {Object} params
 * @param {Object} extendConfig
 * @returns new Promise
 */
export function store(params, extendConfig) {
  return request.post('/v1/user', params, extendConfig)
}

/**
 * 查看
 * @param {Number} id 管理员标识
 * @param {Object} extendConfig
 * @returns new Promise
 */
export function show(id, extendConfig) {
  return request.get('/v1/user/' + id, extendConfig)
}

/**
 * 修改
 * @param {Number} id 管理员标识
 * @param {Object} params
 * @param {Object} extendConfig
 * @returns new Promise
 */
export function update(id, params, extendConfig) {
  return request.put(`/v1/user/${id}`, params, extendConfig)
}

/**
 * destory 删除
 * @param {Number|String} id  例：1或者1,2
 * @param {Object} extendConfig
 * @returns new Promise
 */
export function destory(id, extendConfig) {
  return request.delete(`/v1/user/${id}`, extendConfig)
}

/**
 * 更新状态
 * @param {Number} id 标识
 * @param {Object} params 参数如：{ status: 0 }
 * @param {Object} extendConfig
 * @returns new Promise
 */
export function updateStatus(id, params, extendConfig) {
  return request.patch(`/v1/user/${id}/status`, params, extendConfig)
}

/**
 * 清空登录失败次数
 * @param {Number} id 管理员标识
 * @returns  new Promise
 */
export function clearLoginFailTimes(id) {
  return request.patch(`/v1/user/${id}/clear-login-fail-times`)
}

/**
 * 登录
 * @param {Object} params
 * @param {Object} extendConfig
 * @returns new Promise
 */
export function login(params, extendConfig) {
  return request.post('/v1/login', params, extendConfig)
}

/**
 * 获取个人资料
 * @returns new Promise
 */
export function getProfile() {
  return request.get('/v1/user/profile')
}

/**
 * 更新个人资料
 * @param {Number} id 管理员标识
 * @param {Object} params
 * @param {Object} extendConfig
 * @returns new Promise
 */
export function updateProfile(id, params, extendConfig) {
  return request.patch(`/v1/user/${id}/profile`, params, extendConfig)
}

/**
 * 退出登录
 * @returns new Promise
 */
export function logout() {
  return request.get('/v1/logout')
}

/**
 * 获取指定角色下的管理员列表
 * @param {Number} role_id 角色标识
 * @param {Object} params
 * @param {Object} extendConfig
 * @returns  new Promise
 */
export function getRoleUserList(role_id, params, extendConfig) {
  return request.get(`/v1/user/${role_id}/role-user-list`, { params, ...extendConfig })
}
